

/**
 *
 *    koa-bodyparser  // 获取post请求参数
 *    koa-router  // 处理路由
 *    koa-static  // 静态资源
 *    koa-views   // html模板文件
 *    koa-jwt  //  JWT(jsonwebtoken) 实现token的生成校验和解码.
 *
 *    restful api
 *    https://api.test.com/users      //增 post方法,请求发送新增用户信息
 *    https://api.test.com/users/:id  //删 delete方法,用户id是uri的一部分
 *    https://api.test.com/users/:id  //改 put方法,请求发送用户的信息,id是uri一部分
 *    https://api.test.com/users/:id  //查 get方法,id是uri一部分
 *
 *    router.post('/users',(ctx,next)=>{
           console.log('新增一个用户');
        }).del('/users/:id',(ctx,next)=>{
            console.log('删除了用户编号为id的用户.');
        }).put('/users/:id',(ctx,next)=>{
            console.log('修改了用户编号为id的用户信息');
        }).get('/users/:id',(ctx,next)=>{
            console.log('查询编号为id的用户信息.');
        });
 *
 */
const path = require('path');
const Koa = require('koa');
const app = new Koa();
const bodyParser = require('koa-bodyparser');

const Router = require('koa-router');
const router = new Router(); // 初始化 koa-router 中间件

const static = require('koa-static');
const views = require('koa-views');

//--------------------------------
// 应用中间件
app.use(views(__dirname+'/views',{
    map:{html:'ejs'}  // 渲染模板
}));

app.use(static(path.join(__dirname,'static'))); // 静态资源

app.use(bodyParser());
app.use(router.routes());
app.use(router.allowedMethods());





// app.use(async (ctx)=>{
//     let postdata = '';
//     ctx.req.on('data',(data)=>{
//         postdata += data;
//     });
//     ctx.req.on('end',()=>{
//         console.log('postdata:',postdata);
//         ctx.response.body = {
//             url:ctx.request.url,
//             query:ctx.request.query,
//             method:ctx.request.method,
//             postdata:postdata
//         };
//     });
// });


app.listen(3000,()=>{
    console.log('server is running at http://localhost:3000');
});
